package com.hjr.leetcode.question200;

/**
 *  175. 组合两个表
 */
public class q175 {

    public static void main(String[] args) {
        /**
         * 表: Person
         *
         * +-------------+---------+
         * | 列名         | 类型     |
         * +-------------+---------+
         * | PersonId    | int     |
         * | FirstName   | varchar |
         * | LastName    | varchar |
         * +-------------+---------+
         * personId 是该表的主键（具有唯一值的列）。
         * 该表包含一些人的 ID 和他们的姓和名的信息。
         *
         *
         * 表: Address
         *
         * +-------------+---------+
         * | 列名         | 类型    |
         * +-------------+---------+
         * | AddressId   | int     |
         * | PersonId    | int     |
         * | City        | varchar |
         * | State       | varchar |
         * +-------------+---------+
         * addressId 是该表的主键（具有唯一值的列）。
         * 该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。
         *
         *
         * 编写解决方案，报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中，则报告为 null 。
         *
         * 以 任意顺序 返回结果表。
         */

        //由于需要关联 - 内联、外联
        //如果另一张从表没有关联数据需要为null、选择外联+on的形式就支持了
//        select firstName,lastName,city,state
//            from Person
//            left join Address
//            on Person.personId = Address.personId


        //on和where的区别：
        // 关联查询会有张临时表存放关联数据，where条件是针对临时表进行筛选，会导致只要为空直接排除，
        // 而on是在建立临时表之前对两表进行筛选，会将左边所有数据进行记录
    }


}
